package com.yida.wy.common.mapper;

import com.mybatisflex.core.BaseMapper;
import com.yida.wy.common.domain.WyBaseCommunity;
import com.yida.wy.common.domain.dto.WyBaseCommunityDTO;
import com.yida.wy.common.domain.dto.WyBaseCommunityListDTO;
import com.yida.wy.common.domain.request.WyBaseBuildRequest;
import com.yida.wy.common.domain.request.WyBaseCommunityQueryRequest;

import java.util.List;

/**
 * 基础数据（小区信息）Mapper接口
 *
 * @author lqq
 * @date 2022-11-14
 */
public interface WyBaseCommunityMapper extends BaseMapper<WyBaseCommunity> {

    /**
     * 查询基础数据（小区信息）
     *
     * @param id 基础数据（小区信息）主键
     * @return 基础数据（小区信息）
     */
    WyBaseCommunity selectGwjBaseCommunityByGwjBaseCommunityId(Long id);

    /**
     * 查询基础数据（小区信息）列表
     *
     * @param community 基础数据（小区信息）
     * @return 基础数据（小区信息）集合
     */
    List<WyBaseCommunity> selectCommunityList(WyBaseCommunity community);

    /**
     * 查询小区详细信息 lqq
     *
     * @param buildRequest 请求参数
     * @return /
     */
    WyBaseCommunityDTO selectGwjBaseCommunityDetail(WyBaseBuildRequest buildRequest);

    /**
     * 新增基础数据（小区信息）
     *
     * @param community 基础数据（小区信息）
     * @return 结果
     */
    int insertGwjBaseCommunity(WyBaseCommunity community);

    /**
     * ` 修改基础数据（小区信息）
     *
     * @param community 基础数据（小区信息）
     * @return 结果
     */
    int updateGwjBaseCommunity(WyBaseCommunity community);

    /**
     * 删除基础数据（小区信息）
     *
     * @param id 基础数据（小区信息）主键
     * @return 结果
     */
    int deleteGwjBaseCommunityByGwjBaseCommunityId(Long id);

    /******************* 新增方法保留区 ******************/

    /**
     * 查询基础数据（小区信息）列表
     *
     * @param gwjBaseCommunity 基础数据（小区信息）
     * @return 基础数据（小区信息）集合
     */
    public List<WyBaseCommunity> selectGwjBaseCommunityList(WyBaseCommunity gwjBaseCommunity);

    /**
     * 根据项目名查询基础数据（小区信息）
     *
     * @param communityName 基础数据（小区信息）主键
     * @return 基础数据（小区信息）
     */
    public WyBaseCommunity selectGwjBaseCommunityByGwjBaseCommunityName(String communityName);

    /**
     * 新增导入基础数据（小区信息）
     *
     * @param gwjBaseCommunity 基础数据（小区信息）
     * @return 结果
     */
    public int insertImportGwjBaseCommunity(WyBaseCommunity gwjBaseCommunity);

    /**
     * 新增导入基础数据（小区信息）
     *
     * @param gwjBaseCommunity 基础数据（小区信息）
     * @return 结果
     */
    public int updateImportGwjBaseCommunity(WyBaseCommunity gwjBaseCommunity);

    /**
     * 根据项目id组进行批量删除
     *
     * @param gwjBaseCommunityIds /
     * @return 结果
     */
    public int deleteGwjBaseCommunityByGwjBaseCommunityIds(Long[] gwjBaseCommunityIds);

    /******************* 新增方法保留区 ******************/

    /**
     * 查询基础数据（小区信息）列表
     *
     * @param request 基础数据（小区信息）
     * @return 基础数据（小区信息）集合
     */
    List<WyBaseCommunityListDTO> selectCommunityDtoList(WyBaseCommunityQueryRequest request);

}
